//
//  ZSStatus.swift
//  ZSWeibo
//
//  Created by zsj1992 on 16/4/12.
//  Copyright © 2016年 ichange. All rights reserved.
//

import UIKit

class ZSStatus: NSObject {

    /// 唯一的一条微博记录
    //在64位的设设备上 没有任何问题,整型数据的长度为 64位
    //在32的设置的上 整性数据的长度就被截断
    var id: Int64 = 0
    /// 微博创建时间
    var created_at: String?
    /// 微博正文
    var text: String?
    /// 微博来源
    var source: String?
    
    /// 转发的数量
    var reposts_count: Int = 0
    /// 评论的数量
    var comments_count: Int = 0
    /// 赞的数量
    var attitudes_count: Int = 0
    
    //用户属性
    var user: ZSUser?
    
    //被转发的微博
    var retweeted_status:ZSStatus?
    
    //status里面和图片数组有挂的字段为这个,这个是个啥??是个字典数组??
    var pic_urls : [ZSPicture]?
    
    
    init(dict:[String:AnyObject]) {
        super.init()
    self.setValuesForKeysWithDictionary(dict)
    }
    
    

    
    
    /**重写setValue方法过滤,kvc很多东西在里面*/
    
    
    override func setValue(value: AnyObject?, forKey key: String) {
        
            //对象:用户属性
            if key == "user"{
               user = ZSUser(dict: value as! [String : AnyObject])
                return
            }
            
            //对象:被转发的微博
            
            if key == "retweeted_status"{
                retweeted_status = ZSStatus(dict: value as! [String:AnyObject])
                return
            }
        
           //字典数组:配图的数组-->
            if key == "pic_urls"{
        
                //如果字段是pic..字段,说明放的是一个数组
                let array = value as! [[String:String]]
                
                var temp = [ZSPicture]()
                
                for dic in array{
                
                    //获得一个模型
                    let picture = ZSPicture(dic: dic)
                    
                    temp .append(picture)
                
                }
                pic_urls = temp
           
                //记得return一下
                return
            }
        
        
        super.setValue(value, forKey: key)
        
    
    }
    override func  setValue(value: AnyObject?, forUndefinedKey key: String) {
        
    }

    }
    
    

